﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Biblioteca.classesBasicas.pessoa;
using Biblioteca.fachada;
using Biblioteca.classesBasicas.jogo;

namespace Desktop.views.cruds.crudsJogo.crudPartida
{
    public partial class PartidaJuiz : Form
    {
        private AtribuicoesPartida atribuicoesPartida;
        private List<Responsavel> listaResponsaveis;
        private List<Funcionario> listaFuncionario;
        private Funcionario funcionario = new Funcionario();
        private Fachada fachada = new Fachada();
        private Partida partida = new Partida();
        private Reserva reserva;
        
        
        public PartidaJuiz(AtribuicoesPartida atribuicoesPartida, Reserva reserva, List<Responsavel> listaResponsaveis)
        {
            // TODO: Complete member initialization
            this.atribuicoesPartida = atribuicoesPartida;
            this.reserva = reserva;
            this.listaResponsaveis = listaResponsaveis;

            atribuicoesPartida.Hide();
            InitializeComponent();
        }

        
        private void buttonVoltar_Click(object sender, EventArgs e)
        {
            atribuicoesPartida.Show();
            this.Dispose();
        }

        private void buttonCancelar_Click(object sender, EventArgs e)
        {
            if (DialogResult.Yes == MessageBox.Show("Se você cancelar, perderá todos os dados desta operação.\nRealmente deseja Cancelar?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation))
            {
                atribuicoesPartida.cancelar();
                this.Dispose();
            }
        }

        private void PartidaJuiz_Load(object sender, EventArgs e)
        {
            carregarGridViewPartidaFuncionario();
        }

        private void PartidaJuiz_FormClosed(object sender, FormClosedEventArgs e)
        {
            atribuicoesPartida.Show();
            this.Dispose();
        }

        private void dataGridViewPartidaFuncionario_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                DataGridViewRow row = this.dataGridViewPartidaFuncionario.Rows[e.RowIndex];

                funcionario.Id = row.Cells[0].Value.ToString();
                funcionario.Nome = row.Cells[1].Value.ToString();
                funcionario.Sexo = row.Cells[2].Value.ToString();
                funcionario.Idade = row.Cells[3].Value.ToString();
                funcionario.Rg = row.Cells[4].Value.ToString();
                funcionario.Cpf = row.Cells[5].Value.ToString();
                funcionario.Cargo = row.Cells[6].Value.ToString();
                funcionario.Salario = row.Cells[7].Value.ToString();

                TelaConcluirPartida telaConcluirPartida = new TelaConcluirPartida(this, reserva, listaResponsaveis, funcionario);
                telaConcluirPartida.ShowDialog();
            }
        }


        public void carregarGridViewPartidaFuncionario()
        {
            listaFuncionario = fachada.listarFuncionario();

            dataGridViewPartidaFuncionario.Rows.Clear();
            dataGridViewPartidaFuncionario.ColumnCount = 8;
            dataGridViewPartidaFuncionario.ColumnHeadersVisible = true;
            dataGridViewPartidaFuncionario.AllowUserToAddRows = false;

            DataGridViewCellStyle columnHeaderStyle =
            new DataGridViewCellStyle();
            columnHeaderStyle.BackColor = Color.Aqua;
            columnHeaderStyle.Font =
                new Font("Verdana", 10, FontStyle.Bold);
            this.dataGridViewPartidaFuncionario.ColumnHeadersDefaultCellStyle =
                columnHeaderStyle;

            //dataGridViewFuncionario.DataSource = listaFuncionario;

            this.dataGridViewPartidaFuncionario.Columns[0].HeaderText = "ID";
            this.dataGridViewPartidaFuncionario.Columns[1].HeaderText = "NOME";
            this.dataGridViewPartidaFuncionario.Columns[2].HeaderText = "SEXO";
            this.dataGridViewPartidaFuncionario.Columns[3].HeaderText = "IDADE";
            this.dataGridViewPartidaFuncionario.Columns[4].HeaderText = "RG";
            this.dataGridViewPartidaFuncionario.Columns[5].HeaderText = "CPF";
            this.dataGridViewPartidaFuncionario.Columns[6].HeaderText = "CARGO";
            this.dataGridViewPartidaFuncionario.Columns[7].HeaderText = "SALARIO";

            foreach (Funcionario elemento in listaFuncionario)
            {
                dataGridViewPartidaFuncionario.Rows.Add(elemento.Id, elemento.Nome, elemento.Sexo, elemento.Idade, elemento.Rg, elemento.Cpf, elemento.Cargo, elemento.Salario);
            }
        }

        public void cancelar() 
        {
            atribuicoesPartida.cancelar();
            this.Dispose();
        }
        
    }
}
